<?php

 
namespace ImiApp\ApiServer\Api\Controller\task;
// namespace ImiApp\Consumer;
use Imi\Log\Log;
use Imi\Bean\Annotation\Bean;
use Imi\Queue\Contract\IMessage;
use Imi\Queue\Driver\IQueueDriver;
use Imi\Queue\Service\BaseQueueConsumer;
 
/**
 * @Bean("AConsumer")
 */
class AConsumer extends BaseQueueConsumer
{
    /**
     * 处理消费
     *
     * @param \Imi\Queue\Contract\IMessage $message
     * @param \Imi\Queue\Driver\IQueueDriver $queue
     * @return void
     */
    protected function consume(IMessage $message, IQueueDriver $queue): void
    {
        // 执行对列的地方
        Log::info(sprintf('[%s]%s:%s', $queue->getName(), $message->getMessageId(), $message->getMessage()));

        // 将消息标记为成功
        $queue->success($message);
    }



    /**
     * 推送消息
     *
     * @param \Imi\Queue\Contract\IMessage $message
     * @param \Imi\Queue\Driver\IQueueDriver $queue
     * @return void
     */
    protected function push_msg(IMessage $message, IQueueDriver $queue): void
    {
        // 执行对列的地方
        Log::info(sprintf('%s:%s:%s', $queue->getName(), $message->getMessageId(), $message->getMessage()));
        
        // 将消息标记为成功
        $queue->success($message);
    }
 
}